const App = getApp();
import Notify from '../../dist/notify/notify';

Page({
    data: {
        imgUrl:App.globalData.imgUrl,
        isLoading: true,
        reLoading: false,
        features_id: 0,
        isFullSucreen: App.globalData.isFullSucreen, //判断机型
        hara_url: '',
        ad_img: '',
        file_id: 0,
        tmp_img: '',
        wechatUrl: '',
        aliUrl: '',
        share_title: '',
        ad_img_list: [],
        key: '',
        features: {},
        videoSrc: '',
        isTipsShow: false,
        switch1Checked: false,
    },

    onLoad: function (options) {
        let _this = this;
        _this.setData({
            features_id: options.features_id,
            key: options.key,
        })
        _this.getFeatures();
        _this.getGenerateDetail();
    },

    onShow() {

    },

    // 显示提示
    tips() {
        this.setData({
            isTipsShow: true
        })
    },

    // 关闭提示
    onTipsClose() {
        this.setData({
            isTipsShow: false
        })
    },

    // switch外部跳转切换
    switch1Change(e) {
        let _this = this;
        // wx.showModal({
        //     title: '友情提示',
        //     content: '因系统并未存储AppID等敏感信息,所以外部跳转功能不支持修改!',
        //     showCancel: false,
        //     success(res) {
        //         if (res.confirm) {
        //             _this.setData({
        //                 switch1Checked: false
        //             })
        //         }
        //     }
        // })
        this.setData({
            switch1Checked: e.detail.value
        })
    },

    // 获取赋能信息
    getGenerateDetail() {
        let _this = this;
        App._get('Generate/detail', {
            key: _this.data.key
        }, res => {
            _this.setData(res.data)
            _this.setData({
                ad_img: res.data.detail.ad_img,
                tmp_img: res.data.detail.ad_img,
                hara_url: res.data.detail.hara_url,
                wechatUrl: res.data.detail.wechatUrl,
                aliUrl: res.data.detail.aliUrl,
                ticket: res.data.detail.ticket,
                switch1Checked: res.data.detail.ticket ? true : false,
            })
            if (res.data.detail.type == 50) {
                // 获取视频详情
                _this.getVideoSrc({detail: {value: res.data.detail.hara_url}});
            }
        }, false, () => {
            _this.setData({
                isLoading: false,
                reLoading: false,
            })
        });
    },

    // 获取视频地址
    getVideoSrc(e) {
        let _this = this;
        App._post_form('Generate/getVideoSrc', {
            url: e.detail.value
        }, res => {
            if (res.code == 1) {
                _this.setData({
                    videoSrc: res.data.src
                })
            }
        });
    },

    // 调起扫码
    editError() {
        Notify({type: 'primary', message: '不支持修改此项'});
    },


    // 获取赋能模块信息
    getFeatures() {
        let _this = this;
        App._get('features/detail', {
            features_id: _this.data.features_id
        }, res => {
            _this.setData({
                features: res.data.detail
            })
            wx.setNavigationBarTitle({
                title: res.data.detail.title
            })
            if (res.data.detail.type.value == 10 || res.data.detail.type.value == 40) {
                _this.getAdvertising();
            }
        });
    },

    // 获取默认广告图片
    getAdvertising() {
        let _this = this;
        App._get('Advertising/lists', {}, res => {
            _this.setData({
                ad_img_list: res.data.list
            })
        });
    },

    // 引导页图片上传
    chooseImage() {
        let _this = this;
        wx.chooseImage({
            count: 1,
            sizeType: ['compressed'], // 可以指定是原图还是压缩图，默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
            success: function (res) {
                _this.setData({
                    'detail.guide.file_path': res.tempFilePaths[0],
                    tmp_img: res.tempFilePaths[0],
                })
                if (_this.data.detail.type == 51) {
                    _this.setData({
                        'detail.ad_img': res.tempFilePaths[0],
                    })
                }
                _this.uploadFile();
            }
        });
    },

    // 自定义广告图片上传
    chooseAdImage() {
        let _this = this;
        wx.chooseImage({
            count: 1,
            sizeType: ['compressed'], // 可以指定是原图还是压缩图，默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
            success: function (res) {
                console.log(res.tempFilePaths[0]);
                _this.setData({
                    tmp_img: res.tempFilePaths[0],
                })
                _this.uploadFile();
            }
        });
    },

    // 执行图片上传
    uploadFile() {
        let _this = this;
        let params = {
            wxapp_id: App.getWxappId(),
            token: wx.getStorageSync('token')
        };
        _this.setData({
            reLoading: true,
        })
        wx.uploadFile({
            url: App.api_root + 'upload/image',
            filePath: _this.data.tmp_img,
            name: 'iFile',
            formData: params,
            success: function (res) {
                let result = typeof res.data === "object" ? res.data : JSON.parse(res.data);
                console.log(result);
                _this.setData({
                    file_id: result.data.file_id,
                    ad_img: result.data.file_path,
                    reLoading: false,
                })
            }
        });
    },

    // 提交赋能
    submit(e) {
        let _this = this,
            value = e.detail.value;
        // 表单校验
        if (!_this._onVerify(value)) {
            return false
        }

        // 二维码扫码赋能需验证自定义中转页
        if (_this.data.features.type.value == 20 && !_this.data.tmp_img.length) {
            // 否则使用默认的引导页
            _this.setData({
                file_id: _this.data.features.guide.file_id
            })
        }

        if (_this.data.features.type.value == 20) {
            value.file_id = _this.data.file_id
            value.hara_url = _this.data.hara_url
        }
        value.wechatUrl = _this.data.wechatUrl
        value.aliUrl = _this.data.aliUrl
        value.ad_img = _this.data.ad_img
        value.type = _this.data.features.type.value
        value.key = _this.data.detail.key

        // 提交表单
        _this.setData({
            reLoading: true,
        })
        App._post_form('generate/update', value, res => {
            wx.redirectTo({
                url: '/pages/generate/detail?key=' + res.data.key
            })
        }, false, () => {
            _this.setData({
                reLoading: false
            })
        })

    },


    // 表单验证
    _onVerify(data) {
        let _this = this;
        if (_this.data.features.type.value == 20 && !_this.data.hara_url.length) {
            Notify({type: 'primary', message: '二维码不存在,无法修改此次赋能记录'});
            return false
        }
        if (_this.data.features.type.value == 30) {
            if (!_this.data.wechatUrl.length && !_this.data.aliUrl.length) {
                Notify({type: 'primary', message: '收款码不存在,无法修改此次赋能记录'});
                return false
            }
        }
        if ((_this.data.features.type.value == 10 || _this.data.features.type.value == 40) && !data.hara_url.length) {
            Notify({type: 'primary', message: '请填写网站链接'});
            return false
        }
        // if ((_this.data.features.type.value == 10 || _this.data.features.type.value == 40) && !_this.data.ad_img.length) {
        //     Notify({type: 'primary', message: '请选择或上传广告图片'});
        //     return false
        // }
        let reg = /(http|https):\/\/([\w.]+\/?)\S*/;
        if ((_this.data.features.type.value == 10 || _this.data.features.type.value == 40) && !reg.test(data.hara_url)) {
            Notify({type: 'primary', message: '网站链接不是一个标准的url格式'});
            return false
        }
        if (!data.command.length) {
            Notify({type: 'primary', message: '请输入赋能内容'});
            return false
        }
        if ((_this.data.features.type.value == 20) && !data.title.length) {
            Notify({type: 'primary', message: '请输入中转页标题'});
            return false
        }
        return true;

    },

    // 公众号链接失去焦点自动获取标题
    onUrlBlur(e) {
        let _this = this,
            url = e.detail.value;
        let reg = /(http|https):\/\/([\w.]+\/?)\S*/;
        if (!reg.test(url)) {
            Notify({type: 'primary', message: '网站链接不是一个标准的url格式'});
            return false
        }
        _this.setData({
            reLoading: true,
        })
        App._post_form('generate/getTitle', {
            url: url
        }, res => {
            _this.setData({
                share_title: res.data.title
            })
        }, false, () => {
            _this.setData({
                reLoading: false,
            })
        });

    },


    // 选择广告图片
    selectAdImg(e) {
        let _this = this;
        let item = e.currentTarget.dataset.item;
        _this.setData({
            ad_img: item.image.file_path,
            tmp_img: item.image.file_path,
        })
    },

    clearImg() {
        this.setData({
            ad_img: '',
            tmp_img: '',
        })
    },


});
